/**
 * 返回码统一定义
 * @type {module.exports}
 */

module.exports = class
{
    constructor()
    {
        this.errno = false;
        this.errmsg = false;
        this.data = undefined;
        this.defin();
    }


    defin()
    {
        this.errRule = [];
        this.errRule['-5'] = '提交信息不完整,验证未通过';
        this.errRule['-4'] = 'guid格式不正确';
        this.errRule['-3'] = '提交的数据格式不正确,请对应接口检查参数';
        this.errRule['-2'] = '暂无数据';
        this.errRule['-1'] = '服务器繁忙,请稍后再试';
        this.errRule['0'] = '成功';
        this.errRule['1'] = '未更新任何数据';
        //数据错误
        this.errRule['10000']="用户名或密码不正确";


        //空数据
        this.errRule['20000']='作品不存在,请检查guid';
        this.errRule['20001']='评委不存在,请检查guid';
        this.errRule['20002']='未能删除任何数据,你可能已经删除过了,或guid不存在';
        this.errRule['20003']='比赛不存在,请检查guid';

    }

    /**
     * 设置错误码之后返回错误信息,否者返回false
     * @returns {*}
     */
    getErrmsg()
    {
        if (this.errno === false)
        {
            return '错误验证类定义错误,未初始化errno,请初始化后重试';
        }
        return this.errRule[this.errno.toString()];
    }

    info(errno, data = '')
    {
        this.errno = errno.toString();
        this.errmsg = this.errRule[this.errno];
        this.data = data;
        if (data !== '')
        {
            if (think.isEmpty(data))
            {
                this.errno = '-2';
                this.errmsg = this.errRule[this.errno];
                return {
                    errno: parseInt(this.errno),
                    errmsg: this.errmsg,
                }
            } else
            {
                return {
                    errno: parseInt(this.errno),
                    errmsg: this.errmsg,
                    data: this.data
                }
            }

        } else
        {
            return {
                errno: parseInt(this.errno),
                errmsg: this.errmsg,
            }
        }
    }

    infoWidthErrmsg(errno, errmsg, data = '')
    {
        this.errno = errno.toString();
        this.errmsg = errmsg.toString();
        this.data = data;
        if (data !== '')
        {
            if (think.isEmpty(data))
            {
                this.errno = '-2';
                this.errmsg = this.errRule[this.errno];
                return {
                    errno: parseInt(this.errno),
                    errmsg: this.errmsg,
                }
            } else
            {
                return {
                    errno: parseInt(this.errno),
                    errmsg: this.errmsg,
                    data: this.data
                }
            }

        } else
        {
            return {
                errno: parseInt(this.errno),
                errmsg: this.errmsg,
            }
        }
    }

    /**
     * fastvalidate验证返回方法
     * @param validateResMsg
     * @returns {{errno: Number, errmsg: string}}
     */
    infoFastValidate(validateResMsg)
    {
        this.errno = -5;
        return {
            errno: parseInt(this.errno),
            errmsg:this.getErrmsg() + "." + validateResMsg

        }
    }

    /**
     * 空数据统一返回方法
     * @returns {{errno: Number, errmsg: string}}
     */
    infoEmpty(){
        this.errno=-2;
        return {
            errno: parseInt(this.errno),
            errmsg: this.getErrmsg()
        }
    }

    /**
     * 数据查询成功统一返回方法
     */
    infoQuerySuccess(data){
        this.errno=0;
        return {
            errno:parseInt(this.errno),
            errmsg:this.getErrmsg(),
            data:data
        }
    }
};